package com.shop.core.util;

import java.util.List;
import java.util.Map;
import java.util.regex.Pattern;

/**
 * 基础工具类
 * 
 * @author Shine
 * @date 2016年7月1日10:37:30
 * @version 1.0
 *
 */
public class BaseUtil {
	/**
	 * 用于判断是否为有效数字的正则掩码
	 */
	private static final Pattern PATTERN_ISNUMBER = Pattern.compile("(^-?\\d+)|(^-?\\d+\\.\\d+)");

	private static final Pattern PATTERN_ISINTEGER = Pattern.compile("(^-?\\d+)|(^-?\\d+\\+)");

	/**
	 * 检查字符串是否为数字
	 * 
	 * @author Shine
	 * @date 2016年7月1日11:01:50
	 * @param string
	 * @return
	 */
	public static boolean isNumber(String string) {
		return PATTERN_ISNUMBER.matcher(string).matches();
	}

	/**
	 * 检查字符串是否为整数
	 * 
	 * @author Shine
	 * @date 2016年7月1日11:00:22
	 * @param string
	 * @return
	 */
	public static boolean isInteger(String string) {
		return PATTERN_ISINTEGER.matcher(string).matches();
	}

	/**
	 * 判断一个对象是否为空
	 * 
	 * @author Shine
	 * @date 2016年7月1日10:51:47
	 * @param object
	 * 
	 * @return Boolean.class
	 */
	public static boolean equles(Object object) {
		return object == null;
	}

	/**
	 * 判断一个对象数组是否为空
	 * 
	 * @author Shine
	 * @date 2016年7月1日10:53:02
	 * @param paryObj
	 * @return
	 */
	public static boolean equles(Object[] objects) {
		if (objects == null || objects.length == 0) {
			return true;
		}
		return false;
	}

	/**
	 * 判断一个字符串是否为空
	 * 
	 * @author likz
	 * @date 2016年7月1日10:51:53
	 * @param String.class
	 * @return Boolean.class
	 */
	public static boolean equles(String string) {
		if (string == null || string.trim().length() == 0) {
			return true;
		}
		return false;
	}

	/**
	 * 判断一个字符串数组是否为空
	 * 
	 * @author Shine
	 * @date 2016年7月1日10:52:38
	 * @param String[].class
	 * @return Boolean.class
	 */
	public static boolean equles(String[] strings) {
		if (strings == null || strings.length == 0) {
			return true;
		}
		return false;
	}

	/**
	 * 判断一个字符串缓冲区是否为空
	 * 
	 * @author Shine
	 * @date 2016年7月1日10:57:23
	 * @param stringBuffer
	 * @return
	 */
	public static boolean equles(StringBuffer stringBuffer) {
		if (stringBuffer != null && stringBuffer.length() > 0) {
			return true;
		}
		return false;
	}

	/**
	 * 判断一个数组是否为空
	 * 
	 * @author Shine
	 * @date 2016年7月1日10:54:55
	 * @param bs
	 * @return
	 */
	public static boolean equles(byte[] bs) {
		if (bs == null || bs.length == 0) {
			return true;
		}
		return false;
	}

	/**
	 * 判断一个Map是否为空
	 * 
	 * @author Shine
	 * @date 2016年7月1日10:59:03
	 * @param map
	 * @return
	 */
	public static boolean equles(@SuppressWarnings("rawtypes") Map map) {
		if (map == null || map.size() == 0) {
			return true;
		}
		return false;
	}

	/**
	 * 判断一个List是否为空
	 * 
	 * @author Shine
	 * @date 2016年7月1日10:59:50
	 * @param list
	 * @return
	 */
	public static boolean equles(@SuppressWarnings("rawtypes") List list) {
		if (list == null || list.size() == 0) {
			return true;
		}
		return false;
	}

}
